# encoding: utf-8
# @File  : set_config.py
# @Author: wu shaofan
# @Date  :  2024/06/18
# @Desc : 对config.ini 进行读取和写入
import configparser
from config import config


class SetConfig:
    def __init__(self, config_path=config.BASE_DIR + r"/config/config.ini"):
        """
        初始化SetConfig类。
        :param config_path: 配置文件的路径，默认为config模块中BASE_DIR变量指定的路径下的config.ini文件。
        """
        # config.ini文件存放路径
        self.config_path = config_path
        # 创建一个ConfigParser对象
        self.config = configparser.ConfigParser()
        # 读取config.ini文件，指定编码为utf-8以支持多语言
        self.config.read(self.config_path, encoding='utf-8')

    def get_config(self, section, option):
        """
        获取配置文件中指定section和option的值。

        :param section: 配置文件中的段落名
        :param option: 段落中的选项名
        :return: 返回对应的配置值
        """
        return self.config.get(section, option)

    def set_config(self, section, option, value):
        """
        修改配置文件中指定section和option的值。

        :param section: 配置文件中的段落名
        :param option: 段落中的选项名
        :param value: 要设置的新值
        """
        if self.config.has_section(section):
            self.config.set(section, option, value)
        else:
            print(f"在路径 【{self.config_path}】下，没有找到要修改的section:【{section}】")
            return

        # 将修改后的配置写入文件，确保使用 utf-8 编码以保持文件的兼容性
        with open(self.config_path, 'w', encoding='utf-8') as f:
            self.config.write(f)
